///*
// * To change this template, choose Tools | Templates
// * and open the template in the editor.
// */
//package Domain;
//
//import Berekenen.Calc;
//import Berekenen.MaakMatrix;
//import Berekenen.Tclaml;
//import Draw.ColorSet;
//import Exceptions.BelowOrEqualsToZeroException;
//import Exceptions.InvalidNameException;
//import Exceptions.NameAlreadyExistsException;
//import Exceptions.ValueNotBetweenZeroAndOneException;
//import Jama.Matrix;
//import java.awt.Color;
//import java.util.logging.Level;
//import java.util.logging.Logger;
//
///**
// *
// * @author Memet
// */
//public class Lamel extends Materiaal {
//
//    Vezel v;
//    Epoxy m;
//    double vf;
//    
//    EtBerekeningsMethode methode;
//
//    /**
//     * Maakt een lamel aan
//     * @param v de vezel die gebruikt is
//     * @param m de Epoxy die gebruikt is
//     * @param vf de vezelformulefractie 0<vf<1
//     * @param naam de naam van het materiaal
//     * @param methode de methode om Et te berekenen
//     * @throws ValueNotBetweenZeroAndOneException als vf niet aan de eis voldoet
//     * @throws BelowOrEqualsToZeroException als de parameters 0 of kleiner zijn
//     */
//    public Lamel(Vezel v, Epoxy m, double vf, String naam, EtBerekeningsMethode methode, MateriaalSoort soort, double dikte, ColorSet color, String fabrikant) throws ValueNotBetweenZeroAndOneException, BelowOrEqualsToZeroException {
//        this.v = v;
//        this.m = m;
//
//        double ef = v.getE();
//        double muf = v.getMu();
//        double rhof = v.getRho();
//        double em = m.getE();
//        double mum = m.getMu();
//        double rhom = m.getRho();
//        double af = v.getAlpha();
//        double am = m.getAlpha();
//        this.vf = vf;
//        setFabrikant(fabrikant);
//        this.methode = methode;
//        setNaam(naam);
//        setSoort(soort);
//        setColor(color);
//
//        if(dikte <= 0)
//        {
//            this.dikte = 0;
//        }
//        else
//        {
//           this.dikte = dikte;
//        }
//
//        if (vf >= 1 || vf <= 0) {
//            throw new ValueNotBetweenZeroAndOneException();
//        }
//        if (ef <= 0 || em <= 0 || muf <= 0 || mum <= 0 || rhof <= 0 || rhom <= 0) {
//            throw new BelowOrEqualsToZeroException();
//        }
//
//        //berekenen
//
//        setEl(Tclaml.El(vf, ef, em));
//        setEt(0);
//        if (methode == EtBerekeningsMethode.Halpin_Tsaj_Hahn) {
//            setEt(Tclaml.EtHTH(vf, mum, ef, em, muf));
//        } else {
//            setEt(Tclaml.EtHT(vf, ef, em));
//        }
//        setMult(Tclaml.Mult(muf, mum, vf));
//        setGlt(Tclaml.Glt(ef, em, muf, mum, vf));
//        setRhol(Tclaml.Rhol(rhof, rhom, vf));
//
//        if (naam == null || naam.equalsIgnoreCase("")) {
//            throw new NullPointerException();
//        }
//
//        setQ(MaakMatrix.Q(getEl(), getEt(), getMult(), Tclaml.Mutl(getMult(), getEl(), getEt()), getGlt()));
//        setA1(Tclaml.Al(ef, af, vf, em, am));
//        setA2(Tclaml.At(mum, am, vf, muf, af, ef, em));
//        setA3(getA2());
//        Data tijddate1 = new Data();
//            int idtje1 = 0;
//            try {
//                idtje1 = tijddate1.addMateriaal(new Prepreg("tijdelijk", getEl(), getEt(), getMult(), getGlt(), getRhol(), getA1(), getA2(), MateriaalSoort.UNIDIRECTIONAAL, new ColorSet(Color.darkGray, Color.white),1));
//            } catch (NameAlreadyExistsException ex) {
//                Logger.getLogger(Lamel.class.getName()).log(Level.SEVERE, null, ex);
//            }
//            tijddate1.getMateriaal(idtje1).setId(idtje1);
//            Laminaat l1 = new Laminaat();
//            l1.addRowAfter(tijddate1.getMateriaal(idtje1), 0, 1);
//            try {
//                l1.setNaam("tijdelijk");
//                tijddate1.addLaminaat(l1);
//            } catch (InvalidNameException ex) {
//                Logger.getLogger(Lamel.class.getName()).log(Level.SEVERE, null, ex);
//            }
//
//            Matrix lam1 = l1.getLam();
//            double el1 = Calc.E1(lam1, tijddate1);
//            double et1 = Calc.E2(lam1, tijddate1);
//            double glt1 = Calc.G12(lam1, tijddate1);
//            double mult1 = Calc.Mu12(lam1, tijddate1);
//            double rhol1 = Calc.Rho(lam1, tijddate1);
//            double e3_1 = Calc.E3(lam1, tijddate1);
//            double g23_1 = Calc.G23(lam1,tijddate1);
//            double g31_1 = Calc.G31(lam1,tijddate1);
//            double nu23_1 = Calc.Nu23(lam1,tijddate1);
//            double nu31_1 = Calc.Nu31(lam1,tijddate1);
//
//            setE1(el1);
//            setE2(et1);
//            setE3(e3_1);
//            setNu12(mult1);
//            setNu23(nu23_1);
//            setNu31(nu31_1);
//            setG12(glt1);
//            setG23(g23_1);
//            setG31(g31_1);
//            setEl(el1);
//            setEt(et1);
//            setGlt(glt1);
//            setMult(mult1);
//            setRhol(rhol1);
//            if (soort.equals(MateriaalSoort.UNIDIRECTIONAAL)) {
//                setNu31(getNu12());
//                setG31(getG31());
//                setNu23((getEt()/(2*Tclaml.Gtt(vf, Tclaml.Vm(vf), Tclaml.Ntt(m.getMu(), Tclaml.Gm(m.getE(), m.getMu()), Tclaml.Gf(v.getE(), v.getMu())),  Tclaml.Gf(v.getE(), v.getMu()), Tclaml.Gm(m.getE(), m.getMu()))))-1);
//                setG23(Tclaml.Gtt(vf, Tclaml.Vm(vf), Tclaml.Ntt(m.getMu(), Tclaml.Gm(m.getE(), m.getMu()), Tclaml.Gf(v.getE(), v.getMu())),  Tclaml.Gf(v.getE(), v.getMu()), Tclaml.Gm(m.getE(), m.getMu())));
//            }
//
//
//            setQ(MaakMatrix.Q(getEl(), getEt(), getMult(), Tclaml.Mutl(getMult(), getEl(), getEt()), getGlt()));
//
//
//        if (soort.equals(MateriaalSoort.NULNEGENTIG)) {
//            Data tijddate = new Data();
//            int idtje = 0;
//            try {
//                idtje = tijddate.addMateriaal(new Prepreg("tijdelijk", getEl(), getEt(), getMult(), getGlt(), getRhol(), getA1(), getA2(), MateriaalSoort.UNIDIRECTIONAAL, new ColorSet(Color.darkGray, Color.white),1));
//            } catch (NameAlreadyExistsException ex) {
//                Logger.getLogger(Lamel.class.getName()).log(Level.SEVERE, null, ex);
//            }
//            tijddate.getMateriaal(idtje).setId(idtje);
//            Laminaat l = new Laminaat();
//            l.addRowAfter(tijddate.getMateriaal(idtje), 0, 1);
//            l.addRowAfter(tijddate.getMateriaal(idtje), 90, 1);
//            l.addRowAfter(tijddate.getMateriaal(idtje), 90, 1);
//            l.addRowAfter(tijddate.getMateriaal(idtje), 0, 1);
//            try {
//                l.setNaam("tijdelijk");
//                tijddate.addLaminaat(l);
//            } catch (InvalidNameException ex) {
//                Logger.getLogger(Lamel.class.getName()).log(Level.SEVERE, null, ex);
//            }
//
//            Matrix lam = l.getLam();
//
//            double el2 = Calc.E1(lam, tijddate);
//            double et2 = Calc.E2(lam, tijddate);
//            double glt2 = Calc.G12(lam, tijddate);
//            double mult2 = Calc.Mu12(lam, tijddate);
//            double rhol2 = Calc.Rho(lam, tijddate);
//            double e3_2 = Calc.E3(lam, tijddate);
//            double g23_2 = Calc.G23(lam,tijddate);
//            double g31_2 = Calc.G31(lam,tijddate);
//            double nu23_2 = Calc.Nu23(lam,tijddate);
//            double nu31_2 = Calc.Nu31(lam,tijddate);
//            double a1_2 = Calc.A1(lam, tijddate);
//            double a2_2 = Calc.A2(lam, tijddate);
//            double a3_2 = Calc.A3(lam, tijddate);
//            setE1(el2);
//            setE2(et2);
//            setE3(e3_2);
//            setNu12(mult2);
//            setNu23(nu23_2);
//            setNu31(nu31_2);
//            setG12(glt2);
//            setG23(g23_2);
//            setG31(g31_2);
//            setEl(el2);
//            setEt(el2);
//            setGlt(glt2);
//            setMult(mult2);
//            setRhol(rhol2);
//            setQ(MaakMatrix.Q(getEl(), getEt(), getMult(), Tclaml.Mutl(getMult(), getEl(), getEt()), getGlt()));
//            setA1(a1_2);
//            setA2(a2_2);
//            setA3(a3_2);
//            
//        }
//
//        if (soort.equals(MateriaalSoort.MINVIJFENVEERTIGVIJFENVEERTIG)) {
//            Data tijddate = new Data();
//            int idtje = 0;
//            try {
//                idtje = tijddate.addMateriaal(new Prepreg("tijdelijk", getEl(), getEt(), getMult(), getGlt(), getRhol(), getA1(), getA2(), MateriaalSoort.UNIDIRECTIONAAL, new ColorSet(Color.darkGray, Color.white),1));
//            } catch (NameAlreadyExistsException ex) {
//                Logger.getLogger(Lamel.class.getName()).log(Level.SEVERE, null, ex);
//            }
//            Laminaat l = new Laminaat();
//            tijddate.getMateriaal(idtje).setId(idtje);
//            l.setNaam("tijdelijk");
//            l.addRowAfter(tijddate.getMateriaal(idtje), -45, 1);
//            l.addRowAfter(tijddate.getMateriaal(idtje), 45, 1);
//            l.addRowAfter(tijddate.getMateriaal(idtje), 45, 1);
//            l.addRowAfter(tijddate.getMateriaal(idtje), -45, 1);
//            try {
//                tijddate.addLaminaat(l);
//            } catch (InvalidNameException ex) {
//                Logger.getLogger(Lamel.class.getName()).log(Level.SEVERE, null, ex);
//            }
//            Matrix lam = l.getLam();
//            double el2 = Calc.E1(l.getLam(), tijddate);
//            double et2 = Calc.E2(l.getLam(), tijddate);
//            double glt2 = Calc.G12(l.getLam(), tijddate);
//            double mult2 = Calc.Mu12(l.getLam(), tijddate);
//            double rhol2 = Calc.Rho(l.getLam(), tijddate);
//            double e3_2 = Calc.E3(lam, tijddate);
//            
//            double g23_2 = Calc.G23(lam,tijddate);
//            double g31_2 = Calc.G31(lam,tijddate);
//            double nu23_2 = Calc.Nu23(lam,tijddate);
//            double nu31_2 = Calc.Nu31(lam,tijddate);
//
//            double a1_2 = Calc.A1(lam, tijddate);
//            double a2_2 = Calc.A2(lam, tijddate);
//            double a3_2 = Calc.A3(lam, tijddate);
//            setE1(el2);
//            setE2(et2);
//            setE3(e3_2);
//            setNu12(mult2);
//            setNu23(nu23_2);
//            setNu31(nu31_2);
//            setG12(glt2);
//            setG23(g23_2);
//            setG31(g31_2);
//            setEl(el2);
//            setEt(el2);
//            setGlt(glt2);
//            setMult(mult2);
//            setRhol(rhol2);
//            setQ(MaakMatrix.Q(getEl(), getEt(), getMult(), Tclaml.Mutl(getMult(), getEl(), getEt()), getGlt()));
//            setA1(a1_2);
//            setA2(a2_2);
//            setA3(a3_2);
//            
//        }
//
//    }
//
//    /**
//     * Geeft het epoxy
//     * @return het epoxy
//     */
//    public Epoxy getM() {
//        return m;
//    }
//
//    /**
//     * het epoxy
//     * @param m het epoxy
//     */
//    public void setM(Epoxy m) {
//        this.m = m;
//    }
//
//    /**
//     * de vezel
//     * @return de vezel
//     */
//    public Vezel getV() {
//        return v;
//    }
//
//    /**
//     * de vezel
//     * @param v de vezel
//     */
//    public void setV(Vezel v) {
//        this.v = v;
//    }
//
//    /**
//     * de vezelformulefractie
//     * @return de vezelformulefractie
//     */
//    public double getVf() {
//        return vf;
//    }
//
//    /**
//     * de vezelformulefractie
//     * @param vf de vezelformulefractie
//     */
//    public void setVf(double vf) {
//        this.vf = vf;
//    }
//
//    /**
//     * de methode om Et te berekenen
//     * @return de methode om Et te berekenen
//     */
//    public EtBerekeningsMethode getMethode() {
//        return methode;
//    }
//
//    /**
//     * de methode om Et te berekenen
//     * @param methode de methode om Et te berekenen
//     */
//    public void setMethode(EtBerekeningsMethode methode) {
//        this.methode = methode;
//    }
//
//    @Override
//    public String matData() {
//        String out = "<html>";
//        out += "<b>" + getNaam() + "</b><br /><br />";
//        out += "<b>El:</b> " + getEl() / 1e9 + " GPa <br />";
//        out += "<b>Et:</b> " + getEt() / 1e9 + " GPa <br />";
//        out += "<b>μlt:</b> " + getMult() + "<br />";
//        out += "<b>Glt:</b> " + getGlt() / 1e9 + " GPa <br />";
//        out += "<b>ρ:</b> " + getRhol() + " Kg/m<sup>3</sup> <br />";
//        out += "<br /><hr /><br />";
//        out += java.util.ResourceBundle.getBundle("laminaatprog/Bundle").getString("<B>VEZEL</B> - ") + vf * 100 + "%<br />";
//        out += "<b>E: </b>" + v.getE() / 1e9 + " GPa<br />";
//        out += "<b>μ: </b>" + v.getMu() + " <br />";
//        out += "<b>ρ: </b>" + v.getRho() + " Kg/m<sup>3</sup><br />";
//        out += "<br />";
//        out += java.util.ResourceBundle.getBundle("laminaatprog/Bundle").getString("<B>EPOXY</B> - ") + (1 - vf) * 100 + "%<br />";
//        out += "<b>E: </b>" + m.getE() / 1e9 + " GPa<br />";
//        out += "<b>μ: </b>" + m.getMu() + " <br />";
//        out += "<b>ρ: </b>" + m.getRho() + " Kg/m<sup>3</sup><br />";
//        out += "</html>";
//        return out;
//    }
//
//    public int compareTo(Object o) {
//        if (equals(o)) {
//            return 0;
//        } else {
//            return -1;
//        }
//    }
//
//    
//
//    
//}
